Animation packager for an on-line book

ABSTRACT

A system for creating an on-line book with an animated cover. The system includes an animation program for inserting an animation sequence at the beginning of an on-line book which is compiled into the M14 format. The animation program includes: a user interface module configured to receive input from a user; a data sequencing module which arranges at least two graphical images in a sequence; and an update module which modifies at least one compilation control file. The animation program modifies the control files for an on-line book compiler to provide for the display of an animated object upon the opening of the on-line book.

RELATED APPLICATIONS

The subject matter of the U.S. patent application entitled "Method for Generating Animation in an On-Line Book," filed concurrently herewith, application Ser. No. 09/119331, contains related subject matter.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates generally to computers, and more particularly to a method for generating animation for an on-line book.

2. Description of Related Technology

Currently, there are several web publishing systems by which publishers of textual material can generate books which can be accessed on-line through a computer. One use of on-line books is to display literature on a company's products and services. Particularly in the computer industry, on-line books are often used to display and advertise goods, such as computers and computer peripherals as well as provide documentation for their use. Similar to traditional books, a reader of the on-line book can view each of the pages sequentially. However, a reader of the on-line books can also use a mouse or other input device to click on selected text to jump or hyper-link to another page in the book. The ability of on-line books to associate words or icons within a page to other words on other pages has caused many publishers to make available on-line versions of their materials.

An example of such a publishing system is the "WebBook Publisher" by Modern Age Books. This publishing system creates a plurality of data files which comprise the pages of an on-line book. Once created, the on-line book is typically transmitted by a compact disk to a user. The user then reads the electronic book with a viewing program. An example of a viewing program is the E-Doc 32 software program.

One prevalent viewing format is the Media View Version 1.4 (M14) file format. The M14 has become widely supported since a compiler for this format is part of the public domain. However, one problem with the existing publishing systems is that these systems do not allow for the automatic integration of an animated sequence upon the opening of a book. For example, the WebBook Publisher only provides a mechanism for inserting two visual images on the cover of the on-line book. The publisher of an on-line book typically uses the first image to display a title of the book and the second image to display the copyright notice. The WebBook Publisher does not provide for the ability to include an animated sequence upon the opening of an on-line book. The ability to include an animated sequence at the beginning of the on-line book would allow publishers to distinguish their books from the competition. Currently, manufacturers are unable to take full advantage of the functionality provided by a reader's computer, which would permit the production of an animated cover.

Therefore, on-line book publishers are in need of an application which provides for the generation of a animated object upon the opening of a book. This application should also allow for the automatic updating of any scripting and compiler files that are needed for the compilation of the on-line book.

SUMMARY OF THE INVENTION

One embodiment of the invention is an animation system for updating a plurality of compiler files, comprising at least two graphical images, a data sequencing module which arranges said at least two graphical images in an animated sequence, at least one compilation control file, and an update module which modifies said at least one compilation control file to include a reference to said at least two graphical images.

Another embodiment of the invention includes a system for inserting an animated display into an on-line book, comprising means for ordering a list of images which are displayed upon the opening of an on-line book, means for inserting the ordered list in a scripting file, means for inserting a reference to each of the images in a project file, means for inputting the project file into a compiler, and means for compiling the scripting file and the images into an on-line book.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram illustrating one embodiment of an animation system including an animator program.

FIG. 2 is a block diagram illustrating the components of the animator program shown in FIG. 1.

FIG. 3 is a diagram showing the various computer architectures that may contain the animator program shown in FIG. 1.

FIG. 4 is a flow diagram showing the animation process of the computer system shown in FIG. 1.

FIGS. 5a and 5b are flow diagrams illustrating the animation process of the animator program shown in FIG. 1.

DETAILED DESCRIPTION OF THE INVENTION

The following detailed description is directed to certain specific embodiments of the invention. However, the invention can be embodied in a multitude of different ways as defined and covered by the claims. In this description, reference is made to the drawings wherein like parts are designated with like numerals throughout.

System Overview

Referring to FIG. 1, the functional components of an on-line book publishing system are illustrated. An image generator 50 is in communication with a compiler 52. The image generator 50 is used to organize and create a plurality of individual pages which are used in an on-line book 56. The image generator 50 may be any software publishing system that generates graphical data. An example of the image generator 50 is the WebBook Publisher by Modern Age Books. The compiler may be any M14 on-line book compiler. An example of such compiler 52 is the Media View Compiler which is freely available to the public on the internet. The Media View Compiler can be downloaded from the internet location Custom Controls for Mediaview (visited Jan. 14, 1998) <http://www.innercity.com/mvreadme.htm>.

The compiler 52 may be invoked directly by the image generator 50 once a set of data files 60 are provided by the image generator 50. The image generator 50 and the compiler 52 are in communication with a scripting file 54 and a master project file 58. The master project file 58, which typically has a filename extension of ".mvp," is a text file that contains the name of each of the data files 60 to be included in the on-line book 56. Typically, the image generator 50 provides a master project file 58 for each on-line book 56. The master project file 58 contains a listing of compiler options, definitions, and a baggage section. The baggage section identifies for the compiler 52 the names of the files other than the text and program code that are to be included in the on-line book 56.

The scripting file 54 includes a set of commands which are executed whenever a user first opens the on-line book 56. Upon the creation of the on-line book 56, the compiler 52 incorporates the scripting file 54 into the on-line book 56. Typically, in the M14 file format the name of the scripting file 54 is "autoexec.scr."

An animator program 62 is in communication with the scripting file 54, the master project file 58, and a group of animation files 64. The animation files 64 comprise a plurality of bitmaps and graphical images which are designed to be displayed upon the opening of the on-line book 56. In addition to having the graphical images of the animated sequence, the animation files 64 has a control file 65.

The control file 65 contains the filenames of each of the graphical images which are a part of the animation process. In addition, the control file 65 contains a timing field for each file name, wherein the timing field indicates the length of time that each of the individual graphical images of the animation should be displayed before being replaced on the screen by the next graphical image. The control file 65 also has an indicator to arrange each of the graphical images in the order that the graphical images will be displayed. The data in the control file 65 may be alternatively stored in other formats. For example, the sequencing and timing data may be stored in system memory or the timing data and file names could be stored in a database. One of the purposes of the animator program 62 is to update the master project file 58 and the scripting file 54 to include references to each of the images in the animation graphics 64. The animation program 62 also maintains a registry 66 which keeps historical information of user preferences such as the size of a user interface window. It is noted that in one embodiment of the invention, the animator program 62 is integrated into the image generator 50.

Referring to FIG. 1, a viewing application 68 is used by a receiver of the on-line book 56 to view the pages of the on-line book 56. Versions of the viewing software are commercially available to the public on the internet. The E-DOC32 can be downloaded from the internet location Welcome to Modern Age Books (visited Jun. 19, 1998) <http://www.mabooks.com>.

Now referring to FIG. 2, some of the components of the animator program 62 are illustrated. The animator program 62 is comprised of various modules 76-86. As can be appreciated by one of ordinary skill in the art, each of the modules 76-86 comprises various sub-routines, procedures, definitional statements, and macros. Each of the modules 76-86 is typically compiled into a single executable program. Therefore, the following description of each of the modules 76-86 is used for convenience to describe the functionality of the animator program 62. Thus, the processes that are undergone by each of the modules 76-86 may be arbitrarily redistributed to one of the other modules. The animator program 62 has a main module 76 which controls the other components of the animator program 62. The main module 76 controls an update module 77, a data sequencing module 81, a copying module 82, a user interface module 84, and a registry module 86. Each of these modules 76 through 86 are described further below.

The update module 77 includes an animation parser 78 and a project parser 80. The animation parser 78 and the project parser 80 each control and update the scripting file 54 and the master project file 58, respectively. The data sequencing module 81 maintains an internal list of the ordering of the animation files 64 (FIG. 1). The copying module 82 copies all of the animation files 64 into a directory which is known and accessible by the compiler 52. The user interface module 84 provides a graphical interface to allow a user of the animator program 62 to select the animation sequence for the appropriate on-line book 56. The registry module 86 controls and updates the registry 66 so as to record any user preferences that are observed.

The animation program 62 may be written in any programming language such as C, C++, BASIC, Pascal, and FORTRAN, and can run under any well-known operating system. C, C++, BASIC, Pascal, and FORTRAN are industry standard programming languages for which many commercial compilers can be used to create executable code.

FIG. 3 is a diagram illustrating a computer environment associated with the invention. A client computer 100 has a monitor 102 and a processing unit 103. The processing unit 103 includes a memory for storing data therein. The client computer 100 includes the image generator 50 and the on-line book compiler 52 (FIG. 1). The client computer 100 is connected to a server computer 106 through a network 104. The network 104 may include any type of group of computers that can communicate through a communication pathway including, for instance, the following networks: Internet, Intranet, Local Area Networks (LAN) or Wide Area Networks (WAN). In a ddition, the connectivity to the network may be, for example, remote modem, Ethernet (IEEE 802.3), Token Ring (IEEE 802.5), Fiber Distributed Datalink Interface (FDDI) or Asynchronous Transfer Mode (ATM). Note that computing devices may be desktop, server, portable, hand-held, set-top, or any other desired type of configuration.

The server 106 contains the animator program 62. In one implementation, the server 106 includes a gateway which is connected to a WAN 108. Th e WAN 108 has a plurality of network servers 110. One of the network servers 110 is connected to a LAN 112 comprising a plurality of computers 114. The animator program 62 may be located on one the network servers 110 or another computer in the network 104. In one embodiment of the invention, the animator program 62 executes in part on a plurality of the network servers 110. In another embodiment of the invention, the animator program 62 executes on a plurality of the computers 114 on the LAN 112. In yet another embodiment of the invention, the animator program 62 resides on the client computer 100. It is important to understand that the animator program 62 may be hosted on any computing device so long as a communication pathway exists between the animator program 62, the animated graphics 64, the scripting file 54, and the master project file 58.

Method of Operation

Referring to FIG. 4, the process for creating an on-line book 56 with an animated cover is illustrated. Starting at a state 100, a user executes or runs the image generator 50 which the user uses to create a plurality of data files 60. The data files 60 comprise the pages of the on-line book 56. The method of creating the data files 60 using the generator is well known in the art. For further details, one may reference a user manual that traditionally comes with the image generator 50.

Next, at a state 102, the user runs the animator program 62. The method of operation of the animator program 62 is described in further detail with reference to FIGS. 5 and 6. However, in summation, the animator program 62 modifies the scripting file 54 generated by the image generator 62, modifies the master project file 58 to include a reference to the animation graphics 64, and copies the animation graphics 64 into a directory which is used by the compiler 52 to generate the on-line book 56.

Moving to a state 106, the compiler 52 compiles the data files 60 created by the image generator into an on-line book 56. The process for compiling the data files using the scripting file 54 and the master project file 58 is known in the art. For further reference, one may review the on-line references provided by the Media View Compiler v1.4. Continuing to a state 108, the user views the on-line book 56 through the use of the viewing application 68.

Referring now to FIGS. 5a and 5b, the method of operation of the animator program 62 is further described. Starting at a state 200, a user starts executing the animator program 62. Moving to a decision state 202, the animation program 62 may optionally customize the animator program 62 based upon personalized settings in the registry 66. If the animator program 62 determines that there is information in the registry 66, the animator program 62 configures the personalized settings at a state 204. The personalized settings may define a size and location of the user interface window or a default project location of a master project file 58. From the state 204, or from state 202 if the animator program 62 determines there is no information in the registry 66, the method moves to a decision state 206.

At decision state 206, the animator program 62 determines whether it has access to the master project file 58, which may be located in the default project location. If the animator 62 finds the master project file 58 in the default project location, the animator program 62 proceeds to a state 214. Otherwise, if the animator program 62 has a problem accessing the files in the default project location, the animator program 62 prompts the user at state 208, asking whether the user wants to abort or retry to establish a connection with the default project location. Next, at a decision state 210, if the user requests an abort, the animator program 62 calls a routine for application termination at a state 212. At state 212, during application termination the animator program 62 frees any memory that has been allocated. Otherwise, referring again to decision state 210, if the user requests to retry the connection, the animator program 62 returns to the decision state 206 to re-test the connection with the default project location.

Referring again to the state 214, the animator program 62 lets the user optionally change the project location from the default project to a new project location. Moving to a decision state 216, the animator program 62 checks for the presence of the master project file 58 in the directory that was specified by the user. If the animator program 62 is not able to find a master project file 58, the animator program 62 returns to state 214 to re-request another project location from the user. Once a valid project file is found, at a state 218 the animator program 62 displays a menu to the user through the user interface 84. The menu describes various options to the user who is creating the animation. The menu provides a checkbox for the user to select one of the following options: to select another project location (state 214), to terminate the application (state 212), or to proceed with the animation process with the currently selected project location (decision state 222). Optionally, the menu may display an animated set of pictures during the animation process. The animated set of pictures is an identifier for the animating application.

If the user selects to proceed with the animation process, the method moves to the decision state 222, wherein animator program 62 determines whether there is a connection to the animation files 64. For the embodiment of the invention demonstrated with reference to FIGS. 4 and 5, the animation files 64 are created prior to the execution of the animator program 62. However, the animator program 62 can optionally include an image generator 50 which will generate the graphical images in the animation files 64 during the animation process. Further, the animator program 62 will arrange and sequence each of the generated graphical images. The animator program 62 will also allow a user to designate the display time for each of the graphical images. As is appreciated by one of ordinary skill in the art, the process for creating an image generator 50 is well known.

If, in state 222, the animator program 62 cannot access the animation files 64, the process moves to a state 224 wherein the animator program 62 asks the user whether he or she wants to abort or to retry the connection with the animation graphics 64. Sometimes the connection between the client 100 and the server 106 fails due to a network failure. However, these connection failures are sometimes transient. Next, at a decision state 226, if the user requests an abort, the animator program 62 calls a routine for application termination at the state 212. Otherwise, if the user requests to retry the connection, the animator program 62 returns to the state 222 to re-test the connection.

After the connection to the animation files 64 is established, the animator program 62 proceeds to a state 228 wherein it parses the animation files 64 into memory. Using the control file 65, the animator program 62 parses into memory the file name of each of the graphical images. Proceeding to a state 230, the animator program 62 reads into memory the project information from the master project file 58 and the scripting file 54.

Moving to a state 232, the animator program 62 inserts the filenames of the graphical images that were read from the control file 65 into the master project file 58. Appendix "A" discloses an example of the state of a master project file 58 before and after the animation information has been added to thc master project file 58 by the animator program 62. Referring to Appendix "A," a baggage section is included in the master project file 58. The "Before" column of Appendix "A" contains the contents of a typical master project file 58 before the animation process is initiated. The majority of the filenames listed in the baggage section are the names of the files that are to displayed as pages in the on-line book 56. An example of page files include the "backgnd.bmp" file the "cover.bmp" file and the "cpyr.bmp" file, which each respectively contain background material, a cover page, and a copyright notice.

The "After" column of Appendix "A" displays the state of the master project file 58 after being processed by the animator program 62. As is seen in the "After" column, the animator program 62 has inserted the names of the graphical images that are used for the cover animation. Referring again to the "After" column of Appendix "A," all of the files in the master project file 58 with the prefix "Animg" are used as part of the animation process. Each of the "Animg" files are a frame in the animation display.

Proceeding to a state 234, the animator program 62 also updates the scripting file 54. In the M14 file format, the scripting file 54 is eventually incorporated into the on-line book 56 by the compiler 52. The scripting file 54 is executed when a viewer runs a viewer application 68 to open the on-line book 56. The scripting file 54 sets up the user interface for the viewing application 68.

Referring to Appendix "B," the state of the scripting file 54 before and after the animation processing is illustrated. The "After" column of Appendix "B" shows that a series of Splash() commands are inserted into the scripting file 54 by the animator program 62, The Splash() command displays a graphical image for an identified time frame. The format of the Splash() command is Splash(ImageFileName, Seconds, Removal). The variable ImageFileName is the filename of the image which is to be displayed. The variable Seconds defines the number of whole seconds the image is displayed before moving to the next line in the script. If a zero is used in the Seconds field, the image is displayed for a fraction of a second. The variable Removal defines the method to be used for removing the bitmap after the bitmap is displayed for the time specified in the Seconds field. A value of zero in the Removal field indicates that the displayed image should remain on the screen while the next command in the script is executed. A value of one in the Removal field indicates that the graphical image should be erased after it is displayed. If the size of the one graphical image is different than the next, the previous graphical image should be erased to allow the next graphical image to be centered on the screen and drawn correctly. Also note that the designer of the this particular animation sequence chose to display each of the graphical images twice, instead of once, to fine-tune the animation effect.

In one embodiment of the invention, the values for the variables Seconds and Removal are supplied by the inventor. In another embodiment of the invention, the values for the variables Seconds and Removal are calculated by the animator program 62 so as to maximize the animation effect.

Next, at a state 236, the animator program 62 saves a back-up version of the scripting file 54 and the master project file 58. The back-up feature enables users of the animator program 62 to revert to pre-updated versions of the file if the user of the system decides not to use the animation display. Next, at a state 238 the animator program 62 starts a computing loop to copy all of the graphical images which are a part of the animation graphics 64 to a baggage directory. After the animator program 62 finishes operation, the compiler 52 looks into the baggage directory to find all of the files that are to be incorporated into the on-line book 56. Proceeding to a decision state 240, the animator program 62 checks whether the first image identified in the control file 65 is in the project baggage directory. If first image is not in the directory, at a state 242 the animator program 62 copies the image to the project baggage directory. Proceeding to a state 244, the animator program 62 checks the next image in the control file 65. Moving to the decision state 246, if the animator program 62 determines that all of the graphical images are copied, the animation program 62 returns to state 218 to await further instructions from the user. Otherwise, if the animator program 62 determines that further images in the control file 65 need to be copied, the animator program 62 returns to the decision state 240 to finish the copying process.

The animator program 62 overcomes the problem of static title pages in an on-line book by providing a quick and efficient mechanism by which publishers of the on-line book 56 can incorporate an animated sequence onto the cover of an on-line book 56. Before the teaching of the invention, on-line book publishers had no means for automatically updating the scripting file 54 and the master project file 58. However, using the animator program 62, a publisher may now update the scripting file 54 and the master project file 58 automatically upon receiving as input the file names of each of the images for the animated sequence. The animator program 62 may also optionally be used to create and arrange the graphical images of the animated sequence in their display order.

By using the animator program 62, an on-line book publisher is able to create a professional product and make further use of the viewer's computer hardware. The animator program 62 also provides for the rapid insertion of the same graphical sequence in a plurality of on-line books. This feature is often needed when the graphical images comprise a standard trademark or logo of the on-line book publisher. However, by using the animator program 62, the process for providing the animated image for a plurality of on-line books is easily accomplished.

While the above detailed description has shown, described, and pointed out fundamental novel features of the invention as applied to various embodiments, it will be understood that various omissions and substitutions and changes in the form and details of the system illustrated may be made by those skilled in the art, without departing from the intent of the invention. The scope of the invention is indicated by the appended claims rather than by the foregoing description. All changes which come within the meaning and range of equivalency of the claims are to be embraced within their scope. ##SPC1## 

What is claimed is:
 1. An animation system stored in a memory on a computer, wherein the animation system updates a plurality of compiler files, the animation system comprising:at least two graphical images; a data sequencing module which arranges said at least two graphical images in an animated sequence; at least one compilation control file; and an update module which modifies said at least one compilation control file to include a reference to said at least two graphical images.
 2. The system of claim 1, further comprising an image generator which creates said at least two graphical images.
 3. The system of claim 1, further comprising a compiler which creates an on-line book using said at least two graphical images and said at least one compilation control file.
 4. The system of claim 1, further comprising a viewing module which displays the on-line book.
 5. The system of claim 1, wherein the update module includes an animation parser for modifying a scripting file which is a part of the at least one compilation control file.
 6. The system of claim 1, wherein one of said at least one compilation control files contains a script which is incorporated into an on-line book.
 7. A computer comprising:an animation system for inserting an animation sequence in an on-line book, wherein the animation system comprises:a user interface module configured to receive input from a user; a data sequencing module which arranges at least two graphical images in a sequence, wherein the at least two graphical images define an animated sequence when the at least two graphical images are displayed in succession; and an update module which modifies at least one compilation control file to include a reference to the at least two graphical images.
 8. The computer of claim 7, further comprising an image generator which is used to create the at least two graphical images.
 9. The computer of claim 7, further comprising a compiler for creating the on-line book.
 10. The computer of claim 7, further comprising a viewing module for reading the on-line book.
 11. The computer of claim 7, wherein one of said at least one compilation control files contains a script which is executed during the opening of the on-line book.
 12. A system for inserting an animated display into an on-line book, comprising:means for ordering a list of images which are displayed upon the opening of an on-line book; means for inserting the ordered list in a scripting file; means for inserting a reference to each of the images in a project file; means for inputting the project file into a compiler; and means for compiling the scripting file and the images into an on-line book.
 13. The system of claim 12, further including means for generating the list of images by successively reading a plurality of filenames from a file.
 14. The system of claim 12, wherein the means for ordering further includes means for requesting a user to enter and arrange the at least two graphical images.
 15. The system of claim 12, wherein the means for inserting the ordered list in a scripting file further comprises means for identifying a time interval with each of the images, wherein the time interval designates the display time of the image.
 16. The system of claim 12, wherein the means for compiling comprises means for compiling the control file and the images into an on-line book which is in the M14 file format.
 17. A computer comprising:at least one data file which represents a page of an on-line book; at least two graphical images; at least one compilation control file; an animation system for inserting an animation sequence at the beginning of the on-line book, wherein the animation system comprises:a data sequencing module which arranges the at least two graphical images in a sequence; and an update module which modifies the at least one compilation control file; and a compiler which uses the at least one compilation control file to create the on-line book.
 18. A program storage device storing instructions that when executed by a computer perform the method comprising:generating at least two animation frames; arranging the at least two animation frames in a sequence which when displayed in such sequence creates an animated display; designating a display time period for each of the at least two animation frames, indicating the length of time each of the at least two animation frames are displayed; modifying a scripting file, which contains commands which are executed upon the opening of the on-line book, to include commands to sequentially display the arranged at least two animation frames for a time equal to the designated time frame of each of the at least two animation frames; and compiling the at least two animation frames and the scripting file into an on-line book.
 19. An animation system for generating an animated sequence, wherein the animation system comprises:at least two graphical images; a scripting file which is used by a compiler to generate an on-line book; an animation parser which updates the scripting file to include a reference to the at least two graphical images; a project file which is also used by the compiler to generate an on-line book; a project parser which updates the project file to include a reference to the at least two graphical images; and a data sequencing module for ordering the at least two graphical images in a sequence. 